Building an IDE for the Calculational Derivation of Imperative Programs
نویسندگان
چکیده
In this paper, we describe an IDE called CAPS (Calculational Assistant for Programming from Specifications) for the interactive, calculational derivation of imperative programs. In building CAPS, our aim has been to make the IDE accessible to non-experts while retaining the overall flavor of the pen-and-paper calculational style. We discuss the overall architecture of the CAPS system, the main features of the IDE, the GUI design, and the trade-offs involved.
منابع مشابه
Relational Programming Laws in the Tree, List, Bag, Set Hierarchy
In this paper we demonstrate that the basic rules and calculational techniques used in two extensively documented program derivation methods can be expressed, and, indeed, can be generalised within a relational theory of datatypes. The two methods to which we refer are the so-called “Bird-Meertens formalism” for the construction of functional programs and the “Dijkstra-Feijen calculus” for the ...
متن کاملCalculational Derivation of Pointer Algorithms from Tree Operations
We describe an approach to the derivation of correct algorithms on tree-based pointer structures. The approach is based on enriching trees in a way that allows us to model commonly-used pointer manipulations on tree structures. We provide rules which allow recursive functions on trees to be transformed into imperative algorithms on enriched trees. In addition, we provide rules which allow algor...
متن کاملRelations, graphs and programs
Much emphasis has been placed in recent years on deriving or calculating programs rather than proving them correct. Adequate calculational frame works are needed to support such an approach. This thesis explores the use of a calculus of binary relations to express and reason about graph-theoretical concepts in the context of program construction. Since graphs playa promi nent role in algorith...
متن کاملDerivation of Distributed Programs in the Theory of Owicki and Gries: An Example
This paper describes the derivation of a program for the propagation of information over a network, with acknowledgement (feedback) when the computation is complete. The derivation is carried out in the theory of Owicki and Gries. The paper therefore illustrates the use of this theory for the derivation, as opposed merely to the verification, of distributed multiprograms. Notable is that the de...
متن کاملProof rules for probabilistic loops
Probabilistic predicate transformers provide a semantics for imperative programs containing both demonic and probabilistic nondeterminism. Like the (standard) predicate transformers popularised by Dijkstra, they model programs as functions from final results to the initial conditions sufficient to achieve them. This paper presents practical proof rules, using the probabilistic transformers, for...
متن کامل